This specification relates to scene rendering in computer graphics applications, such as rendering a three dimensional (3D) scene using image based lighting.
Rendering a 3D scene to a two dimensional (2D) image for display in computer graphics applications often involves using ray tracing techniques. In basic ray tracing, for each pixel in the image, random rays are traced through that pixel (via a virtual camera) into the scene. The value of that pixel will be noisy if, for all the rays in that pixel, only a very few of them hit a small bright light source. In this case, within a small group of neighboring pixels in the image, some will have rays that hit the light and others will not. Since the light is often very bright, those that hit it will have a significantly different value than those that don't. This can result in objectionable noise that should be removed.
To address this problem, a filtering step can be added when looking up the value of the light source. Using a filter, instead of just looking at the value of emission where the ray hit, the values of the emission can be averaged over a region near the intersection point of the ray. This tends to make it more probable that the light will be included in the average. Thus, most nearby rays will include the light source's contribution, and the pixels will have a more uniform value. In other words, by filtering the image used for lighting, the light source contributions can be smoothed out so as to reduce artifacts in the rendering. However, this filtering can also change image appearance, so determining the proper amount of filtering has a significant impact on the quality of the final rendering of the image for the scene.